package cn.lhx.blog.util;

import java.util.Calendar;
import java.util.Date;

public class PagenationTookit {
	/**
	 * 数字分页导航生成器
	 * @param curPage 当前页码
	 * @param pageNubmers 该页显示可见的页码数
	 * @param pages 分页总数
	 * @return 返回一个 countPerPage+2的数组
	 */
	public synchronized static  int[] getPageNavigator(int curPage,int pageNubmers,int pages){
		//参数不能为负值
		if(curPage<1||pageNubmers<1) return null;
		int[]nav=new int[pageNubmers+2];
		//在哪一页
		int inPage=curPage%pageNubmers>0? (int)(curPage/pageNubmers+1):(int)(curPage/pageNubmers);//2
		int maxNo=inPage*pageNubmers;//6
		int dist=pages-maxNo;//1 >=0 456 <0 countPerPage+dist  3-1=2 
		if(dist>=0) dist=pageNubmers;
		else {
			dist=pageNubmers+dist;
		}
		//456
		for (int i = 0; i < dist; i++) {
			  nav[i+1]=(inPage-1)*pageNubmers+1+i;
		}
		if(curPage>pageNubmers){
			nav[0]=(inPage-1)*pageNubmers;
		}
		if(pages>(inPage*pageNubmers)){
			nav[nav.length-1]=(inPage*pageNubmers)+1;
		}
	return nav;
	}
	/**
	 * 获取结束索引
	 * @param begin 最低是从0开始
	 * @param blogsOnePage
	 * @param length
	 * @return 因为begin 从0开始，所以 endIndex =理论值—1
	 */
	public static long  getEndIndex(long begin,long blogsOnePage,long length){
		long end=0;
		if(length==0)return end;
		if((begin+blogsOnePage)>length){
			end=length;
		}else{
			end=begin+blogsOnePage;
		}
		System.out.println("begin= "+begin);
		return end-1;
	}
	/**
	 * 根据总数、每页数，计算分页总数
	 * @param blogsOnePage
	 * @param total
	 * @return pages 需要分页的总数
	 */
	public static int getPages(int blogsOnePage,long total){
		//即使没有一篇文章 ，也要有一个页面吧
		if(total<1) return 1;
		int pages=total % blogsOnePage != 0 ? (int) (total
				/ blogsOnePage + 1)
				: (int) (total / blogsOnePage);
		//至少有一页
		return pages;
	}
	
	
	public static void main(String[] args) {
		
//		System.out.println("a="+PagenationTookit.getPages(3, 1));
		String time="2008-8-8";
		String time2="2008-9-8";
		java.sql.Date date = java.sql.Date.valueOf(time);
		Calendar calendar=Calendar.getInstance();
		calendar.setTime(date);
		int m=calendar.get(Calendar.MONTH);
		System.out.println("m= "+m);
		
		
	}

}
